#ifndef _ABSTRACT_GRAPH_H_
#define _ABSTRACT_GRAPH_H_

#include<vector>

class AbstractGraph{
private:
	int vertexNum_;
	int edgesNum_;
public:
	void setVertexNum(int newVertexNum){
		vertexNum_ = newVertexNum;
	}
	void setEdgesNum(int newEdgesNum){
		edgesNum_ = newEdgesNum;
	}
	int getVertexNum(){
		return vertexNum_;
	}
	int getEdgesNum(){
		return edgesNum_;
	}
	virtual void readGraph(int vertexNum, int edgesNum, const std::vector<std::pair<int, int> >& edgesList) = 0;
	virtual std::vector<int> getAdjacentList(int inputVertex) = 0;
	virtual ~AbstractGraph(){}
};

#endif
